In general, an OCR (optical character recognition) process is executed on a character image acquired by reading a character written on paper by a scanner. In recent years, with an increase in resolution of cameras, an application is available which corrects a character image photographed by a camera, and executes an OCR process on the corrected character image. The OCR process can not merely analyze a character image and determine corresponding characters, but can also determine final characters while analyzing the meaning of a character string. In general, an OCR process of a character image photographed by a camera is executed on a character image with an adequate resolving power of, e.g. 200 dpi or more, for characters.
However, in an OCR process of a character image photographed by a camera, the character recognition rate for a low-resolution character image extremely lowers. Furthermore, as regards a low-resolution character image, the character recognition rate tends to vary depending on the quality of images. The quality of images greatly varies due to a slight difference in photography conditions, such as a photography timing of a character image, a photography position, and a photography environment (illumination). Thus, it is thought to execute an OCR process on only a character image with high quality. However, when character images with high quality cannot be obtained due to the photography environment, all character images are excluded from objects of the OCR process. This being the case, it is also thought that an OCR process is executed on a plurality of character images photographed at different timings or from plural positions, and final character recognition is executed based on a recognition result by plural OCR processes. However, if the recognition result by plural OCR processes divides into plural recognition results, the determination of final characters is difficult.